Цифровой скиталец

Мы живём, пока мы летаем

Немного про хэши

Вот по радио, когда нужно назвать слушателя, приславшего смс или выигравшего конкурс, говорят весь номер, кроме последней цифры. Это неэффективно, поскольку человека всегда узнают знакомые, можно позвонить на все 10 номеров и т.д.
Предлагаю ведущим говорить хэш номера - абонент себя узнает сразу же, как только вычислит(а вычислять себя придётся всего лишь один раз).

Хэш - это функция, по значению которой невозможно узнать аргумент. Хэши широко применяются для хранения паролей, электронных подписей и однозначной идентификации объектов, поскольку один и тот же аргумент (пусть даже целый файл) всегда даст одно и то же значение хэш-функции в результате. Перебором всех возможных арумнентов хэш можно подобрать, но это непросто.

Дабы пожалеть слушателей и не мучить их записью длинных сложных хешей и их вычислением, можно использовать самый примитивный - например среднюю часть номера, возведённого в квадрат.
Красными цифрами показан хэш. Зная лишь его, вычислить число (телефон в данном случае) нельзя. Но зная хэш своего телефонного номера, можно сравнить с названным, и убедиться, ты ли это.

5448182^2=29682687105124

Естественно, что хэш будет таким для нескольких чисел, а не только для этого. Для слушателей вероятность коллизии невелика, поскольку звонит их немного, но в других местах используются хэш-функции  с алгоритмами получше: sha, md5.

Хэши - эффективное и единственное правильное средство для хранения паролей. Программа, сравнив хэш введённого пароля с тем хэшем, что у неё хранится, может подтвердить подлинность пользователя. А вот злоумышленники, которые узнали хэш,  узнать и использовать пароль не смогут.

Поэтому я ненавижу сайты, которые хранят мои пароли как текст и даже высылают его на емейл по запросу - так пароль могут узнать и администраторы сайта, и админы всех компьютеров, через которые проходит пароль при пересылке через интернет.

P.S.Писал всё по памяти, так что могут быть ошибки. В ещё сегодня целый день на работе хотел написать этот пост, но всё работал и работал, пока не настало время топать домой.